﻿#ifndef CLIONPROJECTS_C____LINEEDIT_H
#define CLIONPROJECTS_C____LINEEDIT_H
/*pragma指令:用于指定计算机或操作系统特定的编译器功能*/
//#pragma once //指定该文件在编译源代码文件时仅由编译器包含（打开）一次

#include "Configure.h"
#include "BasicWidget.h"
//#include <thread>

//#pragma comment(lib, "Imm32.lib")

class LineEdit
        : public BasicWidget {
public:
    LineEdit(int x = 0, int y = 0, int w = 100, int h = 30);

    void show();

    void eventLoop(const ExMessage &msg);

    //弹出数据输入框
    void popInputBox();

    void setInputBoxTitle(const std::string &title);

    void setText(const std::string &text);

    std::string text();

    void clear();

    //光标隐藏
    void setCursorHide(bool isHide);

    //判断文本是否改变
    bool textChanged();

private:
    std::string m_pretext;    //上一次的文字
    std::string m_text;        //行编辑器中的文字
    int textw;

    std::string m_title;    //行编辑器弹出窗标题
    bool m_hideCursor = false; //是否显示光标
    bool m_isPopUp;    //是否弹出
};


#endif //CLIONPROJECTS_C____LINEEDIT_H
